﻿using System.Collections.Generic;

namespace NanoGedcom
{
    /// <summary>
    /// The Individu class is used to record individu.
    /// </summary>
    public class Individu(string id)
    {
        /// <summary>
        /// The unique id of individu (ex: @I123)
        /// </summary>
        /// <returns></returns>
        public string Id { get; } = id;
        /// <summary>
        /// Value after the tag NAME.
        /// </summary>
        public List<IndividualName> Names { get; } = new List<IndividualName>();
        /// <summary>
        /// Tag SEX.
        /// </summary>
        public char? Sexe { get; set; } = null;
        /// <summary>
        /// Event during the life of individu (BIRT, DEAT, ...).
        /// </summary>
        public List<Event> Events { get; } = new List<Event>();
        /// <summary>
        /// Attribute of individu (OCCU, ...).
        /// </summary>
        public List<IndividualAttribute> Attributes { get; } = new List<IndividualAttribute>();
        /// <summary>
        /// List of FAMS
        /// </summary>
        public List<Family> ParentInFamilies { get; } = new List<Family>();
        /// <summary>
        /// List of FAMC
        /// </summary>
        public List<Family> ChildInFamilies { get; } = new List<Family>();
        /// <summary>
        /// The reported number of children known to belong to this family. This is not necessarily the value of Childs.Count.
        /// </summary>
        public int? KnowChilds { get; set; } = null;
        /// <summary>
        /// The reported number of children known to belong to this family. This is not necessarily the value of Childs.Count.
        /// </summary>
        public int? KnowMarriages { get; set; } = null;

    }


}
